//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//
//class Solution {
//    List<List<Integer>> ret;
//    List<Integer> path;
//    boolean[] check;
//    public List<List<Integer>> permuteUnique(int[] nums) {
//        int n=nums.length;
//        ret=new ArrayList<>();
//        path=new ArrayList<>();
//        check=new boolean[n];
//        Arrays.sort(nums);
//        dfs(nums);
//        return ret;
//    }
//    public void dfs(int[] nums){
//        if(path.size()==nums.length){
//            ret.add(new ArrayList(path));
//            return;
//        }
//        int n=nums.length;
//        for(int i=0;i<n;i++){
//            if(check[i]==true||(i!=0&&nums[i]==nums[i-1]&&check[i-1]==false)){
//                continue;
//            }
//            path.add(nums[i]);
//            check[i]=true;
//            dfs(nums);
//            path.remove(path.size()-1);
//            check[i]=false;
//        }
//    }
//}